runat="server"的根本意义是什么?

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:02:47
我知道这表示运行在服务器上,可是谁能详细讲讲,到底是什么运行在服务器上?假设我自己写了一个 html文件,里面有form,form上有一个text控件和sumit控件。

aspx运行时会被编译,其中没有runat server属性的html标签会被直接写入response,有runat server属性的html标签会转换成对应的HtmlControl子类加入到页面的控件集合中,按照一个控件的生命周期进行处理,这就是"运行在服务器上"的意思.一个最直接的表现就是,当你写一个id="abc"的div,如果有runat server属性,在你的aspx.cs文件中直接可以使用abc.XXX来操作这个对象,而没有runat server的话,在cs中是没有这个对象的.
以上说的是asp.net中的html控件,asp控件只能runat server,因为他们不是直接和html对应的

  1. 是指在服务器端运行

  2. 在进一步说就是你可以在页面的.cs文件中直接使用

  3. 与在客户端运行相对的,比如java脚本,是浏览器解析的

  4. 对于有此语句的控件,转换成对应的HtmlControl子类加入到页面的控件集合

  5. 对于没有此语句的,直接写入html中

根本意义就是通过添加这一条属性可以让服务器端在不通过post和get的情况下,都能操作dom的数据。

ruant="server"表示这个控件是在服务器端运行的,说简单点就是你可以在.cs后台代码里引用到这个控件。

就是这个标签由服务器端解释处理.